In a system using the UMTS standard, data are decoded when they are received in a receiver of such a system. Such a receiver comprises a decoder on an integrated circuit, which is used to detect and correct some errors during the decoding of said data. To this end, the decoder also currently called turbo-decoder comprises two soft input-soft output decoders also called SISO. Each SISO decoder uses intrinsic information and also extrinsic information coming from the other SISO decoder, a SISO decoder using three calculators α, β, and λ. In order to do as such, a system of sliding windows is used. It is based on a cutting of data into windows of data. Such a system is applied on the data used by said three calculators.
The first calculator α computes a result data using a previous data.
The second calculator β computes a result data using a next data.
The third calculator λ computes a result data using the results of the first and second calculators plus an input data.
The principle of the sliding windows is shown on FIG. 1. Said figure shows a block size of data K with some windows W, LW being the last window size. As we can see, the first calculator α has a data flow that is linear. However, the input data and the result data of the calculation must be stored because the second calculator β does a backward mathematical operand. It implies that its input and the first calculator a result data must be stored temporally into two separate buffers BUF1 and BUF2. Thus, during the storage of the incoming data into a first buffer, a second one can be read to calculate the β result. For example, first incoming data of a first window 0_W-1 are 1, 2, 3 and 4. They have been written (WR_BUF1) in the first buffer BUF1. Then, a second window of data W_2W-1 is written (WR_BUF2) into the second buffer BUFF2 with the results α1, α2, α3 and α4 of the first calculator α, while the first window of data is read (RD_BUF1) from the buffer BUF1 and the second calculator β uses the data read 4, 3, 2 and 1 to output its results β1, β2, β3 and β4. Then, the third calculator λ will be able to deliver a result only after the writing of the first window of data, for example, here with β4, 4 and α4.
One major problem of this solution is that on an integrated circuit, a buffer has to memorize around 64 words of 56 bits. As two buffers are needed, it means that 2*64 words of 56 bits have to be memorized. Therefore, on an integrated circuit that comprises said turbo decoder, too much memory is taken for those temporal storage of data and too much energy is spent, which lead to a high cost in term of production.